package ch1;

/**
 * Created by tantexian on 2016/10/22.
 */

/**
 * 将字符串压缩功能（aaabbbbbcddttx => a3b5c1d2t2x1）,如果压缩后与原始字符串相同，则返回原始字符串
 * @author tantexian
 * @since 2016/10/22
 * @params
 */
public class ch1_5 {
    public static void main(String[] args) {
        System.out.println(compressString("aaabbbbbcddttx"));
    }

    // 处理数组时候，需要特别注意，数组越界，及最后一个数组元素处理情况
    public static String compressString(String str) {
        String restult = "";
        char[] chars = str.toCharArray();
        for (int i = 0; i < chars.length; i++) {
            int num = 1;
            while (i < str.length() -1 && chars[i] == chars[i+1]) {// 如果i == str.length() -1，则说明已经是最后一个字符
                num++;
                i++;
            }

            restult = restult + chars[i] + num;
        }

        if(str.length() <= restult.length()){
            return str;
        }

        return restult;
    }
}
